package smedi.ismedi.web.bff.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.smedi.ismedi.video.monitor.api.dto.response.MonitorSettingResponse;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;

@Data
@Accessors(chain = true)
public class ProjectMonitorSettingResponse implements Serializable {
    @ApiModelProperty(value = "监控设置")
    private List<MonitorSettingResponse> monitorSettings = new ArrayList<>();

    @ApiModelProperty(value = "项目id")
    private Long projectId;

    @ApiModelProperty(value = "企业组织id")
    private Long hrOrganizationId;

    @ApiModelProperty(value = "企业组织名称")
    private String hrOrganizationFullName;

    @ApiModelProperty(value = "企业组织简称")
    private String hrOrganizationShortName;

    @ApiModelProperty(value = "项目名称")
    private String projectName;

    @ApiModelProperty(value = "项目编号")
    private String projectCode;

    @ApiModelProperty(value = "项目简称")
    private String projectShortName;

    @ApiModelProperty(value = "项目经理")
    private String projectManager;

    @ApiModelProperty(value = "手机号")
    private String mobile;

    @ApiModelProperty(value = "施工许可证")
    private String constructionPermit;

    @ApiModelProperty(value = "项目类别")
    private String projectCategory;

    @ApiModelProperty(value = "项目类别含义")
    private String projectCategoryMeaning;

    @ApiModelProperty(value = "造价")
    private BigDecimal projectCost;

    @ApiModelProperty(value = "项目状态")
    private String projectStatus;

    @ApiModelProperty(value = "项目状态含义")
    private String projectStatusMeaning;

    @ApiModelProperty(value = "项目地址")
    private String projectAddress;

    @ApiModelProperty(value = "监控类型")
    private String monitorType;

    @ApiModelProperty(value = "监控类型备注")
    private String monitorTypeNote;

    @ApiModelProperty(value = "项目地址地图坐标")
    private String projectMapLocation;

    @ApiModelProperty(value = "合同签订日期")
    @JsonFormat(pattern = "yyyy-MM-dd", locale = "zh", timezone = "GMT+8")
    private LocalDate contractSigningDate;

    @ApiModelProperty(value = "合同工期开始")
    @JsonFormat(pattern = "yyyy-MM-dd", locale = "zh", timezone = "GMT+8")
    private LocalDate contractDurationBegin;

    @ApiModelProperty(value = "合同工期结束")
    @JsonFormat(pattern = "yyyy-MM-dd", locale = "zh", timezone = "GMT+8")
    private LocalDate contractDurationEnd;

    @ApiModelProperty(value = "合同工期天数")
    private Long contractDurationDays;

    @ApiModelProperty(value = "实际工期开始")
    @JsonFormat(pattern = "yyyy-MM-dd", locale = "zh", timezone = "GMT+8")
    private LocalDate actualDurationBegin;

    @ApiModelProperty(value = "实际工期结束")
    @JsonFormat(pattern = "yyyy-MM-dd", locale = "zh", timezone = "GMT+8")
    private LocalDate actualDurationEnd;

    @ApiModelProperty(value = "实际工期天数")
    private Long actualDurationDays;
}
